package com.william.jdbcplus.common.enums;

import com.alibaba.fastjson.serializer.JSONSerializable;
import com.alibaba.fastjson.serializer.JSONSerializer;

import java.io.IOException;
import java.lang.reflect.Type;

/**
 * 通用的枚举接口，方便Jdbc-plus统一定义枚举类型转换器
 *
 * @author niliwei
 * @date
 */
public interface FieldEnum extends JSONSerializable {
    /**
     * 获取枚举类型定义的值
     *
     * @param
     * @return 返回枚举定义的索引值
     */
    int getIndex();

    /**
     * 获取枚举类型定义的名称说明、
     *
     * @param
     * @return 返回枚举类型定义的说明
     */
    String getName();


    default void write(JSONSerializer jsonSerializer, Object o, Type type, int i) throws IOException {
        jsonSerializer.write(this.getIndex());
    }

}